達人が教えるWebパフォーマンスチューニング 3 基礎的な負荷試験
達人が教えるWebパフォーマンスチューニング
https://github.com/catatsuy/private-isu
nginx
のデフォルトの
アクセスログ
の
フォーマット
は
combined
と呼ばれる形式.
Apache Bench
を用いて
負荷試験
を簡易的に行うことができる.
ログ
の
ローテート
を行うべきである.
スロークエリログ
の設定では
long_query_time
は
0
とするべき.
1
クエリ
では高速でも,大量に発行されている場合などがあるため.
実用では出力結果が過剰に多くなるため,0より大きい値を設定する.
MySQL
に付属している
mysqldumpslow
を用いて
スロークエリログ
の集計ができる.
スロークエリログ
を出力する設定だと
MySQL
の
負荷
が上昇し
パフォーマンス
が若干低下することに注意する.
CPUコア
を使い切れるように
worker
が立ち上がる数を設定する.
Unicorn
であれば
unicorn_config.rb
を設定する.
1
プロセス
で1
リクエスト
を拾う
アーキテクチャ
であれば
CPU
の数倍の個数とする.
MySQL
などとの
通信
の間に,
CPU
が空くため
Worker
を活用できる.
同時マルチスレッディング
の影響
アイドル
状態の
CPU
をあたかも
CPUコア
であるかのように見せる技術なので,
CPU使用率
50%で捌けている状態だからといって2倍を
CPU使用率
100%で捌けるようになる訳ではない.
50%を超えないように
キャパシティプランニング
を行うという立場を筆者は取っている.